草庐IT

Python Django 模板 : Iterate Through List

全部标签

c++ - 返回类型与自动的模板特化和显式规范

考虑代码:classTest{public:templateautofoo(){}templateautofoo(){return7;}templatevoidbar(){}templateintbar(){return7;}};我已经用不同的编译器测试了代码(通过CompilerExplorer)。如果Clang7.0.0foo编译,而bar给出错误::8:20:error:nofunctiontemplatematchesfunctiontemplatespecialization'bar'templateintbar(){return7;}^:7:26:note:candidat

c++ - 多个翻译单元中是否允许模板变量并有效合并?

请参阅以下内容:https://en.cppreference.com/w/cpp/language/definition#One_Definition_Rulehttp://eel.is/c++draft/basic.def.odr#12它声明类模板的多个定义、类模板的静态数据成员、部分模板特化等是允许的,并将作为一个单一的定义。太好了...但是它没有在任何地方提到变量模板?如果我在多个翻译单元中有以下内容:templateTmy_data{};inlinevoidtest(){my_data=1;}每个翻译单元是否会被赋予它们自己的my_data定义,从而产生多个符号,或者它们是否

c++ - 交换运算符的模板实现,合法吗?

我已经尝试为我的一个类实现交换加法运算符:structmytype{constexprmytype(othertypeconst&);constexprmytypeoperator+(othertypeconst&rhs)const;};templateconstexprautooperator+(Tconst&lhs,mytypeconst&rhs)->decltype(rhs+lhs){returnrhs+lhs;}想法是,只要右侧是mytype,右侧接受的任何内容在左侧也可以接受。这适用于icc和VisualStudio,并进入无限递归解析gcc和clang上的decltype(

c++ - MSVC 无法识别带有模板自动参数的 constexpr 函数

我试图为值列表中的值创建一个索引元查找器。这是代码:#include#includetemplatestructValueTplList;templateconstexprintMetaFindV(intind){//notfoundcasereturn-1;}templateconstexprintMetaFindV(intind=0){ifconstexpr(std::is_same_v){returnNeedleV==V?ind:MetaFindV(ind+1);}else{returnMetaFindV(ind+1);}}//maintemplatestructMetaInde

c++ - 如何使用 C++ 模板魔法来对类型进行模式匹配

我们的愿望是只为所有typenameT提供一个包装器,它支持结构化绑定(bind),例如通过tuple_size和tuple_element没有运行时开销(contexprs,SFINAE)。有一个函数encode接受Tobj作为参数,并使用更具体的参数和类型参数调用encode_impl。文章https://playfulprogramming.blogspot.com/2016/12/serializing-structs-with-c17-structured.html使用一堆arity函数来实现相同的结果。但据我所知,元组提供了可以使用的std::tuple_size。#inc

c++ - 未知的模板函数返回类型,使用 decltype 时代码重复

在我的工作中,有几个模板数学类(例如矩阵)。可以使用float或double(或其他数字类型,但就此而言,这并不重要)来实现一个对象。一个双重对象只能与另一个双重对象交互。为此,为各种类型实现了函数convert(),其实现类似于:Matrixconvert(constMatrix&m,T2dummy){//createamatrixwithtypeT2andcastmvaluesintoit//retMatrix(i,j)=(T2)m(i,j)}你会这样调用它:autofloatMatrix=convert(doubleMatrix,0.f);或者更详细一点:autofloatMat

c++ - 是否可以使指向不同模板类型的指针可转换?

我有一个模板类,它将一些信息与类型捆绑在一起:templateclassX{intdata[10];//doesn'tmatterwhat'sherereallyTt;public://alsonotterriblyrelevant};然后假设我们有一个基类和派生类:classBase{};classDerived:publicBase{};我希望能够做这样的事情(但我认为我做不到):voidf(shared_ptr>b);shared_ptr>d(newX);f(d);有没有办法让我指向X可转换为X的指针如果T*可转换为Y*? 最佳答案

c++ - 模板类+虚函数=必须实现?

这段代码:templatestructA{Tt;voidDoSomething(){t.SomeFunction();}};structB{};Aa;很容易编译,没有任何提示,只要我从不调用a.DoSomething().但是,如果我定义DoSomething作为虚函数,我会得到一个编译错误,指出B不声明SomeFunction.我多少能明白为什么会这样(DoSomething现在应该在vtable中有一个条目),但我不禁觉得它并不是真正的义务。而且它很烂。有什么办法可以克服这个问题吗?编辑2:好的。我希望这一次有意义:假设我正在进行侵入式引用计数,因此所有实体都必须从基类Object

c++ - 创建模板化对象时替代工厂模式 - C++

我想为一个CG项目实现一个Mesh类,但遇到了一些问题。我想要做的是一个Mesh类,它向用户隐藏实现细节(比如加载到特定API:OpenGL、DirectX、CUDA等)。此外,由于Mesh类将用于研究项目,因此该Mesh类必须非常灵活。classChannel{virtualloadToAPI()=0;}templateclassTypedChannel:publicChannel{std::vectordata;};templateclassOpenGLChannel:publicTypedChannel{loadToAPI();//implementation};classMes

c++ - GCC ICE——替代函数语法、可变参数模板和元组

(与C++0x,HowdoIexpandatupleintovariadictemplatefunctionarguments?相关。)以下代码(见下文)取自此discussion.目标是将函数应用于元组。我简化了模板参数并修改了代码以允许返回泛型类型的值。虽然原始代码编译正常,但当我尝试使用GCC4.4.3编译修改后的代码时,g++-std=c++0xmain.cc-omainGCC报告内部编译器错误(ICE),并显示以下消息:main.cc:Infunction‘intmain()’:main.cc:53:internalcompilererror:intsubst_copy,at